From 177edac2c467bc27e7199a7dfa7a75e9a0464554 Mon Sep 17 00:00:00 2001 From: robertl Date: Sun, 8 Mar 2009 23:29:50 +0000 Subject: [PATCH] Tobias Kretschmar adds support for PocketFMS breadcrumbs and flightplan file formats. --- pocketfms_bc.c | 183 +++ pocketfms_bc.o | Bin 0 -> 6104 bytes pocketfms_fp.c | 151 ++ pocketfms_fp.o | Bin 0 -> 6104 bytes reference/pocketfms_bc | Bin 0 -> 29120 bytes reference/pocketfms_bc.babel | Bin 0 -> 29120 bytes reference/pocketfms_bc.gpx | 2292 +++++++++++++++++++++++++++++++ reference/pocketfms_fp.gpx | 45 + xmldoc/formats/pocketfms_bc.xml | 6 + xmldoc/formats/pocketfms_fp.xml | 9 + 10 files changed, 2686 insertions(+) create mode 100755 pocketfms_bc.c create mode 100644 pocketfms_bc.o create mode 100755 pocketfms_fp.c create mode 100644 pocketfms_fp.o create mode 100755 reference/pocketfms_bc create mode 100755 reference/pocketfms_bc.babel create mode 100755 reference/pocketfms_bc.gpx create mode 100755 reference/pocketfms_fp.gpx create mode 100755 xmldoc/formats/pocketfms_bc.xml create mode 100755 xmldoc/formats/pocketfms_fp.xml diff --git a/pocketfms_bc.c b/pocketfms_bc.c new file mode 100755 index 000000000..e5457096f --- /dev/null +++ b/pocketfms_bc.c @@ -0,0 +1,183 @@ +/* + Read and write PocketFMS files. + + Copyright (C) 2009 Tobias Kretschmar, tobias.kretschmar@gmx.de + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111 USA + + */ + +#include "defs.h" + +#define MYNAME "PocketFMS Breadcrumbs" + +static char header_id[] = "BRC"; + +typedef struct breadcrumb { + // header + char id[4]; // 0x42 0x52 0x43 0x00 <=> "BRC" + gbuint16 version; // 0x0100 + gbuint16 reserve1; // 0x0000 + // data + float latitude; + float longitude; + float altitude; // meter + float speed; // m/s + float course; // degrees + float magvar; // degrees + float separation; // meter + float ehpe; // estimated horizontal position error + float evpe; // estimated vertical position error + float espe; // estimated speed position error + gbuint16 fix; // 1..none, 2..2D, 3..3D, 4..dgps, 5pps + gbuint16 year; // 1999..2999 + gbuint16 month; // 1..12 + gbuint16 day; // 0..31 + gbuint16 hour; // 0.23 + gbuint16 minute; // 0..59 + gbuint16 second; // 0..59 + gbuint16 reserve2; // 0x0000 +} BREADCRUMB; + +static gbfile *file_in, *file_out; + +static void +rd_init(const char *fname) +{ + file_in = gbfopen_le(fname, "rb", MYNAME); +} + +static void +rd_deinit(void) +{ + gbfclose(file_in); +} + +static void +wr_init(const char *fname) +{ + file_out = gbfopen_le(fname, "wb", MYNAME); +} + +static void +wr_deinit(void) +{ + gbfclose(file_out); +} + +static void +read_tracks(void) +{ + struct breadcrumb bc; + route_head *trk_head = route_head_alloc(); + trk_head->rte_num = 1; + trk_head->rte_name = xstrdup("PocketFMS"); + trk_head->rte_desc = xstrdup("Breadcrumb"); + trk_head->rte_url = xstrdup("www.pocketfms.com"); + track_add_head(trk_head); + + while (1 == gbfread(&bc, sizeof (bc), 1, file_in)) { + struct tm tm; + waypoint *wpt; + + if (strcmp (bc.id, header_id) != 0) + fatal(MYNAME ": invalid breadcrumb header in input file.\n"); + + memset(&tm, 0, sizeof (tm)); + tm.tm_year = le_readu16(&bc.year)-1900; + tm.tm_mon = le_readu16(&bc.month)-1; + tm.tm_mday = le_readu16(&bc.day); + tm.tm_hour = le_readu16(&bc.hour); + tm.tm_min = le_readu16(&bc.minute); + tm.tm_sec = le_readu16(&bc.second); + + wpt = waypt_new(); + wpt->latitude = le_read_float(&bc.latitude); + wpt->longitude = le_read_float(&bc.longitude); + wpt->altitude = FEET_TO_METERS(le_read_float(&bc.altitude)); + wpt->creation_time = mkgmtime(&tm); + wpt->hdop = le_read_float(&bc.ehpe); + wpt->vdop = le_read_float(&bc.evpe); + wpt->pdop = le_read_float(&bc.espe); + wpt->course = le_read_float(&bc.course); + wpt->speed = le_read_float(&bc.speed); + wpt->fix = le_readu16(&bc.fix) - 1; + + track_add_wpt(trk_head, wpt); + } +} + +static void +route_head_noop(const route_head *wp) +{ +} + +static void +pocketfms_waypt_disp(const waypoint *wpt) +{ + struct breadcrumb bc; + struct tm *tm; + + memset (&bc, 0, sizeof (bc)); + tm = localtime(&wpt->creation_time); + if (wpt->creation_time) { + tm = gmtime(&wpt->creation_time); + //tm = localtime(&wpt->creation_time); + } + + strcpy (bc.id, header_id); + bc.version = 1; + bc.latitude = wpt->latitude; + bc.longitude = wpt->longitude; + bc.altitude = METERS_TO_FEET(wpt->altitude); + bc.year = tm->tm_year + 1900; + bc.month = tm->tm_mon + 1; + bc.day = tm->tm_mday; + bc.hour = tm->tm_hour; + bc.minute = tm->tm_min; + bc.second = tm->tm_sec; + bc.ehpe = wpt->hdop; + bc.evpe = wpt->vdop; + bc.espe = wpt->pdop; + bc.course = wpt->course; + bc.speed = wpt->speed; + bc.fix = wpt->fix+1; + + gbfwrite(&bc, sizeof (bc), 1, file_out); +} + +static void +data_write(void) +{ + track_disp_all(route_head_noop, route_head_noop, pocketfms_waypt_disp); +} + +ff_vecs_t pocketfms_bc_vecs = { + ff_type_file, + { + ff_cap_none, /* waypoints */ + ff_cap_read | ff_cap_write, /* tracks */ + ff_cap_none /* routes */ + }, + rd_init, + wr_init, + rd_deinit, + wr_deinit, + NULL, + data_write, + NULL, + NULL, + CET_CHARSET_ASCII, 0 /* CET-REVIEW */ +}; diff --git a/pocketfms_bc.o b/pocketfms_bc.o new file mode 100644 index 0000000000000000000000000000000000000000..d1998ad922b5f89c779351192fd1528457b669c3 GIT binary patch literal 6104 zcmb`LQD|G&8OOhSB}-R|ld6l_Ig6Vq5H>xynNysi1*dhKq$t$sOrt>_Os^$fB@&S> zO_F07l<2UQ;IfQ$)DIrZipw(Qu?;-Pzz-SZA+S*FdH-|H zC+Q|}qHgq(lkfYV-*>+AopX<_uk@dPef}vCeFe>rrlGlr^a@c3uF!f=I8R^xX|QV; zHU;K&G&0Rns$6P}FwNNM^Rb3jp68AlPdd@=4)l%L&;!24BP4m==*olV5*dD0!M7!2tQO90UrC3Y- zGR<==R~cYu*gxr>b_}aGo@4^o{cE>bPm5D0pwVP#s1f?`i7Wh zqFAhV@3af!l#HRu;Qq4Iz5YrSmD;G#MvjW%n*9~>y<=18 zdAWIP$i~=;%T|cd?XR)8l z7THvxle4w`L|re5x~d1L+kTI_aTqn!)-LN#82#W!1s4qc0q!3_|0|CEAor)y-{R4YA)AvEQ8=4O)=|YmQrkc8?4Igb!KNoJ?Nk0{s{LU z;r`}igqRqShIO(%m{E3<;nh0 zn6)v>I9Qrlkl9%W%QEX^_F3(oaIJZ9ZtUw6iIV$IYMs6gyBD8%K0^^3_j`u4%3FK! zIdy#|_8aF&J8^w$`s!6$zG9!8-RZL-o-25!tcuSBKC4j?^NeT1;1kcCCCuF&=}~7G z^Hb%tockzhUc%YyS8LJ#$@e}Y`te!q=kwkEc%18aEl%VWW7X%vy%;6!A2`?ABGxL# z;Qkt$c0X@x>sy(Zmr`F;n|&XJ^8my zXiL%Ox+RN^hM#7wRpf;#RUSGL#VSrlU><-JoEjqlfcy+=Zdy;bd+I ze8)V;LYd*q@odHlCF;pTX-tzUfZ$(#q!hZ4$)*mA?<@4(bFZE_ck;{`;fw3dKVJRw zUmyNxtH=LlcVoko;-_0?(z-V-p2l2TOiMZ(p&37gU>+^IQWN3 zZ!I&Qd4f+nIbzbdb)Ud?^L!zE&$@O)F2h~LeCrAz4+Q77Kb z@%2d7?Z!R#IpW-ply-BR`<{rynA>czE~z_tJl^B|Q)(V9y+H1O(!LJVi<;ed?-%i| z2W;=MU1B@U)@Ez5jS4$YF68k?8u?verHxgU--UI{{Bk|;xnBK_>eoMJJIA)lw#;^b zZ4Xn6buDebcr*JH?A zRrUJ93#9icEzYnnJWo32@lP^0z>!~Q4f%Zrco2F*abp9#RcUR8$k@O+c?dnudx1cM`C%_k!7I}>c@G0mr^ECLR(s}?q4PJsSF^__0 zl@{wTqTn&;Jo7MkpVE31JPh6ion>x-W1P^s1#W-`q0@?cH^5t!*0I0d4eb9zXp8yE z0?~b?^=a@G@Vn51%;&)GD6QkndFQ}yLF4%;F7E_5{t2yPoOc3z3i>?rG~lGt`UCJZ zcnLbjJPMvw+SLjk1&=}ZGY^CJDJ`Bi-Y|FOq{VrW7WGSOuywOVDYE}-a9%+ZzX9z>`zqRtXfL557rl&zT=I9s zJ+R_8AIwEBpnV+;^V0#eeP~~1uI)W8WW+NW`{&=I313{=-aQ^+#cyI-JNFO3|0er0 z@H;u?8vJA2zX|`e^2Pno-c`O^j7_p%hCil!PYnJz`!*)jUQqSm{?RW{POYLjhyQzr z|1*a_?C@tC{%ME*Lx*2>_&;^{mc#$Z;s4v=zv}Q~4*%~C|ER;i@9^(B{2+XFnf13j zGm$her;Pz_>-`(4~t*rOZ%@%!`Q&qXqn^iXpjVJgYi+^vIFd5t*SXOa;r#3}+A~-csSp9xJ8#Mhi}esgbQ<)~H;(+?3*Dg$?I&n4_`7ssOQX OB!Arte_name=xstrdup("PocketFMS flightplan"); + route_add_head(route); + } + wpt_to = waypt_new(); +} + +void wpt_e(const char *args, const char **unused) +{ + if (isFirst == 1) { + route_add_wpt(route, wpt_from); + if (doing_wpts) + waypt_add(waypt_dupe(wpt_from)); + wpt_from = NULL; + isFirst = 0; + } + route_add_wpt(route, wpt_to); + if (doing_wpts) + waypt_add(waypt_dupe(wpt_to)); + wpt_to = NULL; +} + +void wpt_from_lat(const char *args, const char **unused) +{ + if (wpt_from != NULL) + wpt_from->latitude = atof(args); +} + +void wpt_from_lon(const char *args, const char **unused) +{ + if (wpt_from != NULL) + wpt_from->longitude = atof(args); +} + +void wpt_from_name(const char *args, const char **unused) +{ + if (wpt_from != NULL) + wpt_from->shortname = xstrappend(wpt_from->shortname, args); +} + +void wpt_to_lat(const char *args, const char **unused) +{ + wpt_to->latitude = atof(args); +} + +void wpt_to_lon(const char *args, const char **unused) +{ + wpt_to->longitude = atof(args); +} + +void wpt_to_name(const char *args, const char **unused) +{ + wpt_to->shortname = xstrappend(wpt_to->shortname, args); +} + +void wpt_altitude(const char *args, const char **unused) +{ + wpt_to->altitude = atof(args); +} + +ff_vecs_t pocketfms_fp_vecs = { + ff_type_file, + { + ff_cap_read /* waypoints */, + ff_cap_none /* tracks */, + ff_cap_read /* routes */ + }, + rd_init, + wr_init, + rd_deinit, + NULL, + data_read, + NULL, + NULL, + NULL, + CET_CHARSET_ASCII, 0 /* CET-REVIEW */ +}; diff --git a/pocketfms_fp.o b/pocketfms_fp.o new file mode 100644 index 0000000000000000000000000000000000000000..a4e9448c2d8810c68373c4dda1a221dc588b353b GIT binary patch literal 6104 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 VFjr1vCeL))J(oeP53;l&{{ur72*>~c literal 0 HcmV?d00001 diff --git a/reference/pocketfms_bc b/reference/pocketfms_bc new file mode 100755 index 0000000000000000000000000000000000000000..40e840142f90628795a59637cd96c99c953b7f5b GIT binary patch literal 29120 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 HO~C&jx@Lv` literal 0 HcmV?d00001 diff --git a/reference/pocketfms_bc.babel b/reference/pocketfms_bc.babel new file mode 100755 index 0000000000000000000000000000000000000000..b5ba84dd35d703b610a4d08c8bbcd2c79d0c22c5 GIT binary patch literal 29120 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 AK>z>% literal 0 HcmV?d00001 diff --git a/reference/pocketfms_bc.gpx b/reference/pocketfms_bc.gpx new file mode 100755 index 000000000..320ef9d18 --- /dev/null +++ b/reference/pocketfms_bc.gpx @@ -0,0 +1,2292 @@ + + + + + + PocketFMS flight #1 + PocketFMS breadcrumb +1 + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + -0.304800 + + none + + + 231.295203 + + none + + + 231.295203 + + 3d + + + 230.295208 + + 3d + + + 230.295208 + + 3d + + + 230.095202 + + 3d + + + 230.095202 + + 3d + + + 230.095202 + + 3d + + + 230.095202 + + 3d + + + 230.095202 + + 3d + + + 230.095202 + + 3d + + + 229.195201 + + 3d + + + 229.195201 + + 3d + + + 229.195201 + + 3d + + + 229.295195 + + 3d + + + 229.295195 + + 3d + + + 229.295195 + + 3d + + + 229.395207 + + 3d + + + 229.395207 + + 3d + + + 229.495201 + + 3d + + + 229.495201 + + 3d + + + 229.495201 + + 3d + + + 229.495201 + + 3d + + + 229.595195 + + 3d + + + 229.595195 + + 3d + + + 229.795201 + + 3d + + + 229.895195 + + 3d + + + 229.895195 + + 3d + + + 229.995208 + + 3d + + + 230.095202 + + 3d + + + 230.195196 + + 3d + + + 230.595208 + + 3d + + + 230.795196 + + 3d + + + 231.095197 + + 3d + + + 231.195209 + + 3d + + + 231.295203 + + 3d + + + 231.495191 + + 3d + + + 231.595203 + + 3d + + + 231.595203 + + 3d + + + 231.595203 + + 3d + + + 231.595203 + + 3d + + + 231.595203 + + 3d + + + 231.595203 + + 3d + + + 231.495191 + + 3d + + + 231.595203 + + 3d + + + 231.495191 + + 3d + + + 231.395197 + + 3d + + + 231.395197 + + 3d + + + 230.995203 + + 3d + + + 230.795196 + + 3d + + + 230.495196 + + 3d + + + 230.695202 + + 3d + + + 230.695202 + + 3d + + + 230.695202 + + 3d + + + 230.795196 + + 3d + + + 231.395197 + + 3d + + + 231.695197 + + 3d + + + 231.695197 + + 3d + + + 232.095191 + + 3d + + + 232.795204 + + 3d + + + 232.995192 + + 3d + + + 233.095205 + + 3d + + + 233.195199 + + 3d + + + 233.295192 + + 3d + + + 233.395205 + + 3d + + + 233.795199 + + 3d + + + 233.995206 + + 3d + + + 234.495194 + + 3d + + + 234.395200 + + 3d + + + 234.395200 + + 3d + + + 234.395200 + + 3d + + + 234.395200 + + 3d + + + 234.395200 + + 3d + + + 234.195193 + + 3d + + + 234.095199 + + 3d + + + 234.095199 + + 3d + + + 234.095199 + + 3d + + + 234.095199 + + 3d + + + 233.795199 + + 3d + + + 233.695205 + + 3d + + + 233.695205 + + 3d + + + 233.695205 + + 3d + + + 233.795199 + + 3d + + + 233.995206 + + 3d + + + 233.995206 + + 3d + + + 233.895193 + + 3d + + + 233.895193 + + 3d + + + 233.895193 + + 3d + + + 233.895193 + + 3d + + + 233.795199 + + 3d + + + 233.795199 + + 3d + + + 233.695205 + + 3d + + + 233.595193 + + 3d + + + 233.195199 + + 3d + + + 232.695192 + + 3d + + + 232.495204 + + 3d + + + 231.995197 + + 3d + + + 231.495191 + + 3d + + + 231.095197 + + 3d + + + 230.795196 + + 3d + + + 230.495196 + + 3d + + + 230.195196 + + 3d + + + 229.995208 + + 3d + + + 229.795201 + + 3d + + + 229.395207 + + 3d + + + 229.095207 + + 3d + + + 228.695194 + + 3d + + + 228.395194 + + 3d + + + 228.095194 + + 3d + + + 227.895206 + + 3d + + + 227.595206 + + 3d + + + 227.395199 + + 3d + + + 227.195193 + + 3d + + + 226.995205 + + 3d + + + 226.795199 + + 3d + + + 226.595192 + + 3d + + + 226.395204 + + 3d + + + 226.095204 + + 3d + + + 225.895198 + + 3d + + + 225.695191 + + 3d + + + 225.495203 + + 3d + + + 225.295197 + + 3d + + + 225.095209 + + 3d + + + 224.895203 + + 3d + + + 224.795209 + + 3d + + + 224.595203 + + 3d + + + 224.495209 + + 3d + + + 224.395196 + + 3d + + + 224.295202 + + 3d + + + 224.495209 + + 3d + + + 224.695196 + + 3d + + + 224.795209 + + 3d + + + 224.795209 + + 3d + + + 224.795209 + + 3d + + + 224.695196 + + 3d + + + 224.695196 + + 3d + + + 224.495209 + + 3d + + + 224.395196 + + 3d + + + 224.395196 + + 3d + + + 224.395196 + + 3d + + + 224.395196 + + 3d + + + 224.495209 + + 3d + + + 224.695196 + + 3d + + + 224.795209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 225.095209 + + 3d + + + 223.695202 + + 3d + + + 223.895208 + + 3d + + + 224.295202 + + 3d + + + 224.595203 + + 3d + + + 224.995197 + + 3d + + + 225.195203 + + 3d + + + 225.395191 + + 3d + + + 225.795204 + + 3d + + + 225.995192 + + 3d + + + 226.395204 + + 3d + + + 226.795199 + + 3d + + + 227.095199 + + 3d + + + 227.495193 + + 3d + + + 227.995200 + + 3d + + + 228.495206 + + 3d + + + 228.695194 + + 3d + + + 229.295195 + + 3d + + + 229.795201 + + 3d + + + 230.595208 + + 3d + + + 231.695197 + + 3d + + + 232.695192 + + 3d + + + 233.495199 + + 3d + + + 234.295206 + + 3d + + + 234.795194 + + 3d + + + 235.495207 + + 3d + + + 236.195202 + + 3d + + + 237.495197 + + 3d + + + 239.195204 + + 3d + + + 241.095200 + + 3d + + + 243.295196 + + 3d + + + 245.795192 + + 3d + + + 248.695201 + + 3d + + + 251.995205 + + 3d + + + 255.495196 + + 3d + + + 258.895193 + + 3d + + + 261.695208 + + 3d + + + 264.395192 + + 3d + + + 267.295201 + + 3d + + + 270.395198 + + 3d + + + 273.195194 + + 3d + + + 275.995191 + + 3d + + + 278.595200 + + 3d + + + 280.695202 + + 3d + + + 282.595197 + + 3d + + + 284.295205 + + 3d + + + 285.695194 + + 3d + + + 287.895209 + + 3d + + + 290.695205 + + 3d + + + 293.695208 + + 3d + + + 295.795192 + + 3d + + + 297.195199 + + 3d + + + 299.395195 + + 3d + + + 302.095198 + + 3d + + + 303.395193 + + 3d + + + 304.595194 + + 3d + + + 306.595202 + + 3d + + + 309.295205 + + 3d + + + 312.395183 + + 3d + + + 315.795199 + + 3d + + + 319.795215 + + 3d + + + 324.295182 + + 3d + + + 329.495200 + + 3d + + + 334.795192 + + 3d + + + 339.495185 + + 3d + + + 344.095201 + + 3d + + + 348.295206 + + 3d + + + 351.895209 + + 3d + + + 355.295188 + + 3d + + + 358.395203 + + 3d + + + 360.995193 + + 3d + + + 363.695196 + + 3d + + + 367.095212 + + 3d + + + 370.895203 + + 3d + + + 374.795207 + + 3d + + + 378.895198 + + 3d + + + 383.295190 + + 3d + + + 386.995206 + + 3d + + + 390.095184 + + 3d + + + 392.995212 + + 3d + + + 395.595202 + + 3d + + + 397.995204 + + 3d + + + 400.095207 + + 3d + + + + diff --git a/reference/pocketfms_fp.gpx b/reference/pocketfms_fp.gpx new file mode 100755 index 000000000..707553c42 --- /dev/null +++ b/reference/pocketfms_fp.gpx @@ -0,0 +1,45 @@ + + + + + + EDBX + EDBX + EDBX + + + Horka,NOL(GM) + Horka,NOL(GM) + Horka,NOL(GM) + + + RO(EDBR)-N + RO(EDBR)-N + RO(EDBR)-N + + + EDBR + EDBR + EDBR + + + PocketFMS flightplan + + EDBX + + + Horka,NOL(GM) + + + RO(EDBR)-N + + + EDBR + + + diff --git a/xmldoc/formats/pocketfms_bc.xml b/xmldoc/formats/pocketfms_bc.xml new file mode 100755 index 000000000..688578283 --- /dev/null +++ b/xmldoc/formats/pocketfms_bc.xml @@ -0,0 +1,6 @@ + + This format provides support for binary breadcrumb files from PocketFMS. The default filename is GPS followed by the timestamp with no file extension. + + + PocketFMS breadcrumbs files contain track information. That is latitude, longitude, altitude, speed, course, variation, separation, GPS error, fix type and timestamp. With exception of separation all info get processed by GPSBabel in both in and out direction. + diff --git a/xmldoc/formats/pocketfms_fp.xml b/xmldoc/formats/pocketfms_fp.xml new file mode 100755 index 000000000..131c035ed --- /dev/null +++ b/xmldoc/formats/pocketfms_fp.xml @@ -0,0 +1,9 @@ + + This format provides support for XML flightplans from PocketFMS. + + + PocketFMS XML flightplans contain route and waypoint information and much more flight planning info as airspaces, aircraft performance, fuel managment etc. This format cannot be read by PocketFMS. Hence GPSBabel supports only input of route and waypoint information. + + + The PocketFMS flightplan converter take into account the -w waypoint flag. If set then additional waypoints are stored to the route point and path information. + -- 2.30.2